package edu.ccut.saturn.basecomponent.database.impl.sqlserver.builder.unused;

import java.sql.Connection;

import edu.ccut.saturn.basecomponent.database.ISaturnSQL;
import edu.ccut.saturn.basecomponent.database.SaturnSQLBuilderFactory;
import edu.ccut.saturn.basecomponent.database.impl.AbstractInsertSQLBuilder;
import edu.ccut.saturn.component.IDataItem;
import edu.ccut.saturn.component.SaturnComponentException;
import edu.ccut.saturn.component.SaturnData;
/**
 * 不考虑主键,大数据,只考虑传入是否为null,mysql插入语句的生成
 * @author zjh
 *
 */
public class MysqlInsertSQLBuilder extends AbstractInsertSQLBuilder {
	
	/**
	 * 获得数据库类型
	 * @author zjh
	 * @return mysql
	 */
	@Override
	protected String getDatabaseType() {
		return SaturnSQLBuilderFactory.MYSQL;
	}
	/**
	 * 生成mysql插入语句values()内部的语句.
	 * @author zjh
	 * @param iDataItem 数据项对象
	 * @param value 数据值
	 * @return 生成好的字符串,后多个"," 父类处理
	 */	
	@Override
	public String getColumnValueString(IDataItem iDataItem, Object value) {
		
		StringBuffer sqlAppend = new StringBuffer();
		return sqlAppend.append("'").append(value) 
				.append("',").toString();
	}
	/**
	 * 得到操作类型
	 * @author zjh
	 * @return INSERT 
	 */
	@Override
	protected String getOperationType() {
		return ISaturnSQL.INSERT_OPERATION;
	}
	/**
	 * 得到当前主键值的sql语句
	 * @author zjh
	 * @return sql语句
	 */	
	@Override
	protected String getPrimerKeySql(IDataItem dataItem) {
		return "SELECT LAST_INSERT_ID()";
	}
	/**
	 * 重写设置主键值方法,mysql无法在此设置主键值
	 * @author zjh
	 * @param saturnData
	 * @param conn 
	 */
	@Override
	protected void setPrimerKey(SaturnData saturnData, Connection conn)
			throws SaturnComponentException {
		
	}
	
}
